package br.com.empresa.view;

import java.awt.BorderLayout;
import java.awt.EventQueue;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.table.DefaultTableModel;

import java.awt.Color;

import javax.swing.JLabel;

import java.awt.Font;

import javax.swing.JOptionPane;
import javax.swing.JTable;
import javax.swing.SwingConstants;
import javax.swing.JTextField;
import javax.swing.JComboBox;
import javax.swing.JButton;

import br.com.empresa.dao.ContatoDAO;
import br.com.empresa.dao.ProdutoDAO;
import br.com.empresa.modelo.Contato;
import br.com.empresa.modelo.Produto;

import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

import javax.swing.JScrollPane;

public class CadastroContatoGUI extends JFrame {

	private JPanel contentPane;
	private JTextField txCodigo;
	private JTextField txRua;
	private DefaultTableModel modelo;
	private int linhaSelecionada;
	private JTable tabela;
	private JTextField txBairro;
	private JTextField txCidade;
	private JTextField txNome;

	/**
	 * Launch the application.
	 */
	public static void main(String[] args) {
		EventQueue.invokeLater(new Runnable() {
			public void run() {
				try {
					CadastroContatoGUI frame = new CadastroContatoGUI();
					frame.setVisible(true);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		});
	}

	/**
	 * Create the frame.
	 */
	
	public CadastroContatoGUI(int cdFornecedor, DefaultTableModel modelo,
			int linhaSelecionada) {
		this();
		this.modelo = modelo;
		this.linhaSelecionada = linhaSelecionada;
		ProdutoDAO dao = new ProdutoDAO();
		Produto produto = dao.listarPorId(cdFornecedor);
		txCodigo.setText(String.valueOf(produto.getCodigo()));
		txRua.setText(produto.getNome());
	}
	
	public CadastroContatoGUI() {
		addWindowListener(new WindowAdapter() {
			@Override
			public void windowClosed(WindowEvent arg0) {
				
			}
		});
		
		setTitle("Cadastro de Contatos");
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setBounds(100, 100, 531, 298);
		contentPane = new JPanel();
		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
		setContentPane(contentPane);
		contentPane.setLayout(null);
		
		JPanel panel = new JPanel();
		panel.setBackground(Color.WHITE);
		panel.setBounds(0, 0, 520, 242);
		contentPane.add(panel);
		panel.setLayout(null);
		
		JPanel panel_1 = new JPanel();
		panel_1.setBackground(Color.DARK_GRAY);
		panel_1.setBounds(0, 0, 530, 46);
		panel.add(panel_1);
		panel_1.setLayout(null);
		
		JLabel lblNewLabel = new JLabel("CONTATOS");
		lblNewLabel.setHorizontalAlignment(SwingConstants.CENTER);
		lblNewLabel.setBounds(10, 11, 510, 20);
		lblNewLabel.setForeground(Color.WHITE);
		lblNewLabel.setFont(new Font("Tahoma", Font.BOLD, 16));
		panel_1.add(lblNewLabel);
		
		JLabel lblNewLabel_1 = new JLabel("C\u00F3digo: ");
		lblNewLabel_1.setBounds(20, 67, 46, 14);
		panel.add(lblNewLabel_1);
		
		JLabel lblNome = new JLabel("Rua: ");
		lblNome.setBounds(20, 123, 46, 14);
		panel.add(lblNome);
		
		txCodigo = new JTextField();
		txCodigo.setEnabled(false);
		txCodigo.setBounds(95, 64, 86, 20);
		panel.add(txCodigo);
		txCodigo.setColumns(10);
		
		txRua = new JTextField();
		txRua.setBounds(95, 120, 408, 20);
		panel.add(txRua);
		txRua.setColumns(10);
		
		JButton btnSalvar = new JButton("Salvar");
		btnSalvar.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				int codigo = 0;
				if(!(txCodigo.getText().trim().equals("") || 
						txCodigo.getText() == null)){
					codigo = Integer.parseInt(txCodigo.getText());
				}
				Contato contato = new Contato(codigo, txNome.getText(),txRua.getText(),txBairro.getText(),txCidade.getText());
				
				ContatoDAO dao = new ContatoDAO();
				if(!(txCodigo.getText().trim().equals("") || 
						txCodigo.getText() == null)){
					contato.setCodigo(Integer.parseInt(txCodigo.getText()));
					dao.editar(contato);
				}else{
					codigo = dao.inserir(contato);
					txCodigo.setText(String.valueOf(codigo));
				}
			}
		});
		btnSalvar.setBounds(414, 209, 89, 23);
		panel.add(btnSalvar);
		
		JButton btnNewButton = new JButton("|<<");
		btnNewButton.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				ContatoDAO dao = new ContatoDAO();
				Contato contato = dao.menor();
				txCodigo.setText(String.valueOf(contato.getCodigo()));
				txNome.setText(contato.getNome());
				txRua.setText(contato.getEndereco().getRua());
				txBairro.setText(contato.getEndereco().getBairro());
				txCidade.setText(contato.getEndereco().getCidade());
			}
		});
		btnNewButton.setBounds(201, 63, 62, 23);
		panel.add(btnNewButton);
		
		JButton button = new JButton("<");
		button.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				ContatoDAO dao = new ContatoDAO();
				Contato contato = dao.anterior(Integer.parseInt(txCodigo.getText()));
				txCodigo.setText(String.valueOf(contato.getCodigo()));
				txNome.setText(contato.getNome());
				txRua.setText(contato.getEndereco().getRua());
				txBairro.setText(contato.getEndereco().getBairro());
				txCidade.setText(contato.getEndereco().getCidade());
			}
		});
		button.setBounds(269, 63, 62, 23);
		panel.add(button);
		
		JButton button_1 = new JButton(">>|");
		button_1.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				ContatoDAO dao = new ContatoDAO();
				Contato contato = dao.maior();
				txCodigo.setText(String.valueOf(contato.getCodigo()));
				txNome.setText(contato.getNome());
				txRua.setText(contato.getEndereco().getRua());
				txBairro.setText(contato.getEndereco().getBairro());
				txCidade.setText(contato.getEndereco().getCidade());
			}
		});
		button_1.setBounds(405, 63, 62, 23);
		panel.add(button_1);
		
		JButton button_2 = new JButton(">");
		button_2.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				ContatoDAO dao = new ContatoDAO();
				Contato contato = dao.posterior(Integer.parseInt(txCodigo.getText()));
				txCodigo.setText(String.valueOf(contato.getCodigo()));
				txNome.setText(contato.getNome());
				txRua.setText(contato.getEndereco().getRua());
				txBairro.setText(contato.getEndereco().getBairro());
				txCidade.setText(contato.getEndereco().getCidade());
			}
		});
		button_2.setBounds(337, 63, 62, 23);
		panel.add(button_2);
		
		JLabel lblBairro = new JLabel("Bairro: ");
		lblBairro.setBounds(20, 151, 46, 14);
		panel.add(lblBairro);
		
		txBairro = new JTextField();
		txBairro.setColumns(10);
		txBairro.setBounds(95, 148, 408, 20);
		panel.add(txBairro);
		
		JLabel lblCidade = new JLabel("Cidade: ");
		lblCidade.setBounds(20, 181, 46, 14);
		panel.add(lblCidade);
		
		txCidade = new JTextField();
		txCidade.setColumns(10);
		txCidade.setBounds(95, 178, 408, 20);
		panel.add(txCidade);
		
		JLabel label = new JLabel("Nome: ");
		label.setBounds(20, 95, 46, 14);
		panel.add(label);
		
		txNome = new JTextField();
		txNome.setColumns(10);
		txNome.setBounds(95, 92, 408, 20);
		panel.add(txNome);
		
		JButton btnNovo = new JButton("Novo");
		btnNovo.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				txCodigo.setText("");
				txNome.setText("");
				txRua.setText("");
				txBairro.setText("");
				txCidade.setText("");
			}
		});
		btnNovo.setBounds(317, 209, 89, 23);
		panel.add(btnNovo);
		
		JPanel panel_2 = new JPanel();
		panel_2.setBounds(0, 240, 520, 21);
		contentPane.add(panel_2);
		panel_2.setBackground(Color.DARK_GRAY);
		panel_2.setLayout(null);
		
		JLabel lblDesenvolvidoPorRosiclia = new JLabel("Desenvolvido por Deny Steiner");
		lblDesenvolvidoPorRosiclia.setBounds(0, 0, 508, 14);
		panel_2.add(lblDesenvolvidoPorRosiclia);
		lblDesenvolvidoPorRosiclia.setHorizontalAlignment(SwingConstants.RIGHT);
		lblDesenvolvidoPorRosiclia.setForeground(Color.WHITE);
	}
	
}
